<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button class="btn1">btn1</b utton>
        <button class="btn2">btn2</button>
        <button class="btn3">btn3</button>
        <!-- 
        html
        css
        javascript (ECMAScript) ECMA组织（前身为欧洲计算机制造商协会：制定和发布脚本语言的规范）
        97年 es1
        98年 es2
        99年 es3 未发布
        07年 es4 过于激进 未发布
        09年 es5
        2015年 es6 ECMA2015
        2016年 es7
        2018年 es9
        2019年 es10
        平时es6泛指 es2015之后所有的新标准
     -->
        <script>
            var a = 1;
            console.log(a);
            // 声明变量使用let 声明常量使用const 
            // 常量变量的参考标准：栈内存中存储的值是否发生变化
            // 数据类型：
            // 基本数据类型：bealoon null undefined string number
            // 引用数据类型: array object
            let aa = '123';
            aa = 123;

            let obj = {
                name: 'tom'
            }
            obj.sex = 'nan';
            // obj是个变量还是常量 

            // 注：当变化的量使用const去声明就会报错
            let bbb = 123;
            bbb = 456;
            console.log(bbb);

            let cc = {
                name: 'jack'
            }
            cc.age = 18;
            console.log(cc);

            console.log('------------');
            console.log(dd);  //变量提升  //undefined
            var dd;     //声明未赋值
            var dd = '123';
            // console.log(ee); //let const 不能变量提升  //报错
            let ee;
            // let ee = '123'   //let const 不能重复声明

            // 需求：获取每一个按钮的下标
            const btnArr = document.querySelectorAll('button');
            console.log(btnArr);    //伪数组
            // 什么是真数组 什么是伪数组
            // 能遍历 具有length
            // 真数组具有数组原型对象上的方法 而伪数组没有 
            for (let i = 0; i < btnArr.length; i++) {
                btnArr[i].onclick = function () {
                    console.log(i);
                }
            }

            const obj_1 = {
                name:'tom'
            }
            obj_1.sex = 'nan';

            let obj_2 = {
                name:'jack'
            }
            obj_2 = {
                name:'llili'
            }
            console.log(obj_2);
        </script>
</body>

</html>